
// // #include <Windows.h>
// // #include <cstdlib>
// // #include <thread>

// // std::thread t0;
// // std::thread t1;
// // std::thread t2;
// // std::thread t3;
// // std::thread t4;
// // std::thread t5;
// // std::thread t6;
// // std::thread t7;
// // std::thread t8;
// // std::thread t9;

// // void Thread_Fun()
// // {
// //     for (int i = 0; i < 10; i++)
// //     {
// //         while (GetTickCount() % 5000 < 2500);
// //         Sleep(2500);
// //     }
// // }

// // LRESULT WINAPI WinProc(HWND window, UINT msg, WPARAM wParam, LPARAM lParam)
// // {
// //     switch (msg)
// //     {
// //     case WM_PAINT:
// //     {
// //         HDC hdc = GetDC(window);

// //         RECT rect;
// //         GetClientRect(window, &rect);

// //         FillRect(hdc, &rect, CreateSolidBrush(RGB(rand() % 256, rand() % 256, rand() % 256)));

// //         ReleaseDC(window, hdc);
// //     }
// //     }
// //     return DefWindowProc(window, msg, wParam, lParam);
// // }

// // bool gameover = false;

// // int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
// // {
// //     //注册主窗口
// //     WNDCLASS wc;
// //     wc.style = CS_HREDRAW | CS_VREDRAW;
// //     wc.lpfnWndProc = (WNDPROC)WinProc;
// //     wc.cbClsExtra = 0;
// //     wc.cbWndExtra = 0;
// //     wc.hInstance = hInstance;
// //     wc.hIcon = NULL;
// //     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
// //     wc.hbrBackground = CreateSolidBrush(RGB(0, 0, 255));
// //     wc.lpszMenuName = NULL;
// //     wc.lpszClassName = L"123";
// //     RegisterClass(&wc);

// //     srand(GetTickCount());

// //     int Max_i = 20 + rand() % 20;
// //     for (int i = 0; i < Max_i; i++)
// //     {
// //         HWND window = CreateWindowEx(
// //             NULL,
// //             L"123", L"123",
// //             WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
// //             rand() % 1024, rand() % 512, 128 + rand() % 512, 128 + rand() % 400,
// //             NULL, NULL, hInstance, NULL
// //             );

// //         ShowWindow(window, nCmdShow);
// //     }

// //     t0 = std::thread(Thread_Fun);
// //     t1 = std::thread(Thread_Fun);
// //     t2 = std::thread(Thread_Fun);
// //     t3 = std::thread(Thread_Fun);
// //     t4 = std::thread(Thread_Fun);
// //     t5 = std::thread(Thread_Fun);
// //     t6 = std::thread(Thread_Fun);
// //     t7 = std::thread(Thread_Fun);
// //     t8 = std::thread(Thread_Fun);
// //     t9 = std::thread(Thread_Fun);

// //     //主消息循环
// //     MSG message;
// //     while (!gameover)
// //     {
// //         if (GetMessage(&message, NULL, 0, 0))
// //         {
// //             TranslateMessage(&message);
// //             DispatchMessage(&message);
// //         }
// //     }
// //     t0.join();
// //     t1.join();
// //     t2.join();
// //     t3.join();
// //     t4.join();
// //     t5.join();
// //     t6.join();
// //     t7.join();
// //     t8.join();
// //     t9.join();

// //     return message.wParam;
// // }


// #include <Windows.h>
// #include <cstdlib>
// #include <thread>

// std::thread t0;
// std::thread t1;
// std::thread t2;
// std::thread t3;
// std::thread t4;
// std::thread t5;
// std::thread t6;
// std::thread t7;
// std::thread t8;
// std::thread t9;

// void Thread_Fun()
// {
//     for (int i = 0; i < 10; i++)
//     {
//         while (GetTickCount() % 5000 < 2500);
//         Sleep(2500);
//     }
// }

// LRESULT WINAPI WinProc(HWND window, UINT msg, WPARAM wParam, LPARAM lParam)
// {
//     switch (msg)
//     {
//     case WM_PAINT:
//     {
//         HDC hdc = GetDC(window);

//         RECT rect;
//         GetClientRect(window, &rect);

//         FillRect(hdc, &rect, CreateSolidBrush(RGB(rand() % 256, rand() % 256, rand() % 256)));

//         ReleaseDC(window, hdc);
//         break;
//     }
//     case WM_DESTROY:
//         PostQuitMessage(0);
//         break;
//     }
//     return DefWindowProc(window, msg, wParam, lParam);
// }

// bool gameover = false;

// int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
// {
//     // 注册主窗口
//     WNDCLASSW wc = {0};  // 使用 WNDCLASSW 明确表示宽字符版本
//     wc.style = CS_HREDRAW | CS_VREDRAW;
//     wc.lpfnWndProc = WinProc;
//     wc.cbClsExtra = 0;
//     wc.cbWndExtra = 0;
//     wc.hInstance = hInstance;
//     wc.hIcon = NULL;
//     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
//     wc.hbrBackground = CreateSolidBrush(RGB(0, 0, 255));
//     wc.lpszMenuName = NULL;
//     wc.lpszClassName = L"123";
//     RegisterClassW(&wc);

//     srand(GetTickCount());

//     int Max_i = 20 + rand() % 20;
//     for (int i = 0; i < Max_i; i++)
//     {
//         HWND window = CreateWindowExW(
//             0,  // 使用 0 而不是 NULL 作为 DWORD 参数
//             L"123", 
//             L"123",
//             WS_OVERLAPPEDWINDOW,  // 使用 WS_OVERLAPPEDWINDOW 替代多个标志的组合
//             rand() % 1024, 
//             rand() % 512, 
//             128 + rand() % 512, 
//             128 + rand() % 400,
//             NULL, 
//             NULL, 
//             hInstance, 
//             NULL
//         );

//         if (window)
//         {
//             ShowWindow(window, nCmdShow);
//             UpdateWindow(window);
//         }
//     }

//     t0 = std::thread(Thread_Fun);
//     t1 = std::thread(Thread_Fun);
//     t2 = std::thread(Thread_Fun);
//     t3 = std::thread(Thread_Fun);
//     t4 = std::thread(Thread_Fun);
//     t5 = std::thread(Thread_Fun);
//     t6 = std::thread(Thread_Fun);
//     t7 = std::thread(Thread_Fun);
//     t8 = std::thread(Thread_Fun);
//     t9 = std::thread(Thread_Fun);

//     // 主消息循环
//     MSG message;
//     while (!gameover)
//     {
//         if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
//         {
//             if (message.message == WM_QUIT)
//             {
//                 gameover = true;
//                 break;
//             }
//             TranslateMessage(&message);
//             DispatchMessage(&message);
//         }
//         else
//         {
//             // 空闲处理
//             Sleep(1);
//         }
//     }

//     t0.join();
//     t1.join();
//     t2.join();
//     t3.join();
//     t4.join();
//     t5.join();
//     t6.join();
//     t7.join();
//     t8.join();
//     t9.join();

//     return (int)message.wParam;
// }


#include <Windows.h>
#include <cstdlib>
#include <thread>

std::thread t0;
std::thread t1;
std::thread t2;
std::thread t3;
std::thread t4;
std::thread t5;
std::thread t6;
std::thread t7;
std::thread t8;
std::thread t9;

void Thread_Fun()
{
    for (int i = 0; i < 10; i++)
    {
        while (GetTickCount() % 5000 < 2500);
        Sleep(2500);
    }
}

LRESULT WINAPI WinProc(HWND window, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_PAINT:
    {
        HDC hdc = GetDC(window);
        RECT rect;
        GetClientRect(window, &rect);
        FillRect(hdc, &rect, CreateSolidBrush(RGB(rand() % 256, rand() % 256, rand() % 256)));
        ReleaseDC(window, hdc);
        break;
    }
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    }
    return DefWindowProc(window, msg, wParam, lParam);
}

bool gameover = false;

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
    WNDCLASSW wc = {0};
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WinProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = NULL;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = CreateSolidBrush(RGB(0, 0, 255));
    wc.lpszMenuName = NULL;
    wc.lpszClassName = L"123";
    RegisterClassW(&wc);

    srand(GetTickCount());

    int Max_i = 20 + rand() % 20;
    for (int i = 0; i < Max_i; i++)
    {
        HWND window = CreateWindowExW(
            0,
            L"123", 
            L"123",
            WS_OVERLAPPEDWINDOW,
            rand() % 1024, 
            rand() % 512, 
            128 + rand() % 512, 
            128 + rand() % 400,
            NULL, 
            NULL, 
            hInstance, 
            NULL
        );

        if (window)
        {
            ShowWindow(window, nCmdShow);
            UpdateWindow(window);
        }
    }

    t0 = std::thread(Thread_Fun);
    t1 = std::thread(Thread_Fun);
    t2 = std::thread(Thread_Fun);
    t3 = std::thread(Thread_Fun);
    t4 = std::thread(Thread_Fun);
    t5 = std::thread(Thread_Fun);
    t6 = std::thread(Thread_Fun);
    t7 = std::thread(Thread_Fun);
    t8 = std::thread(Thread_Fun);
    t9 = std::thread(Thread_Fun);

    MSG message;
    while (!gameover)
    {
        if (PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
        {
            if (message.message == WM_QUIT)
            {
                gameover = true;
                break;
            }
            TranslateMessage(&message);
            DispatchMessage(&message);
        }
        else
        {
            Sleep(1);
        }
    }

    t0.join();
    t1.join();
    t2.join();
    t3.join();
    t4.join();
    t5.join();
    t6.join();
    t7.join();
    t8.join();
    t9.join();

    return (int)message.wParam;
}